#include <stdio.h>
#include <math.h>

int countDigit(int target) {
    if (target <= 9) { return 1; }
    if (target <= 99) { return 2; }
    return 3;
}

int main() {
    int target;
    scanf("%d", &target);
    double sumUp = 0;
    for (int i = 0; i < target; i++) {
        double curr = i + 1 + (i + 2) * pow(10, -countDigit(i + 2));
        i < target - 1 ? printf("%d.%d+", i + 1, (i + 2) % 100 ? ((i + 2) % 10 == 0 ? (i + 2) / 10 : (i + 2)) : 1)
        : printf("%d.%d=", i + 1, (i + 2) % 100 ? ((i + 2) % 10 == 0 ? (i + 2) / 10 : (i + 2)) : 1);
        // 没法设置动态输出几位小数，在此使用整数组合表示小数
        // 还有一个很坑的地方：9.10应该被表示为9.1，就是小数本身都是要化简的
        // 题目的表述非常不清晰，差评
        sumUp += curr;
    }
    target <= 9 ? printf("%.1lf", sumUp) : printf("%.2lf", sumUp); // 不同情况考虑不同精度？
    return 0;
}